import java.text.NumberFormat;
import java.util.Locale;

/**
 * @author LiuYan
 * @date 2023/5/15
 */
public class NumberFormatOptimization {

    public static void main(String[] args) {
        double number = 1234567.89;
        // 使用默认本地化进行格式化
        NumberFormat nfDefault = NumberFormat.getInstance();
        String formatted = nfDefault.format(number);
        System.out.println("Default Local Formatted Number:" + formatted);   // 输出: 1,234,567.89
        // 使用指定本地化进行格式化
        Locale locale = new Locale("fr", "FR");
        NumberFormat nfFrench = NumberFormat.getInstance(locale);
        formatted = nfFrench.format(number);
        System.out.println("Appoint Local Formatted Number:"+formatted);   // 输出: 1 234 567,89 (注意空格)
        // 解析本地化字符串中的数字
        String numStr = "1,234,567.89";
        try {
            Number parsedNum = nfDefault.parse(numStr);
            System.out.println("Parse Local Formatted Number:"+parsedNum.doubleValue());   // 输出: 1234567.89
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

}
